package com.forxindu.kit.box;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class NumberKit {

    public static int praseStringToInteger(String valueString, int defaultValue) {
        if (valueString == null)
            return defaultValue;
        int result = defaultValue;
        try {
            result = Integer.parseInt(valueString);
        } catch (NumberFormatException ex) {
            ex.printStackTrace();
        }
        return result;
    }

    public static long praseStringToLong(String valueString, long defaultValue) {
        if (valueString == null)
            return defaultValue;
        long result = defaultValue;
        try {
            result = Long.parseLong(valueString);
        } catch (NumberFormatException ex) {
            ex.printStackTrace();
        }
        return result;
    }

    public static float praseStringToFloat(String valueString,
                                           float defaultValue) {
        if (valueString == null)
            return defaultValue;
        float result = defaultValue;
        try {
            result = Float.parseFloat(valueString);
        } catch (NumberFormatException ex) {
            ex.printStackTrace();
        }
        return result;
    }

    public static boolean isNumeric(String str) {
        Pattern pattern = Pattern.compile("[0-9]*");
        Matcher isNum = pattern.matcher(str);
        if (!isNum.matches()) {
            return false;
        }
        return true;
    }

    // 用取余运算
    public static boolean isSingular(int num) {
        if (num % 2 == 0) {
            return true;
        } else {
            return false;
        }
    }

    /**
     * 计算显示数量
     */
    public static String getNumberUnit(long number) {
        if (number < 10000) {
            return String.valueOf(number);
        } else {
            long myriad = number / 10000;
            return String.format("%1$s万", myriad);
        }
    }
    //将阿拉伯数字转换成数字
    public static String convert(int number) {
        //数字对应的汉字
        String[] num = {"零","一","二","三","四","五","六","七","八","九"};
        //单位
        String[] unit = {"","十","百","千","万","十","百","千","亿","十","百","千","万亿"};
        //将输入数字转换为字符串
        String result = String.valueOf(number);
        //将该字符串分割为数组存放
        char[] ch = result.toCharArray();
        //结果 字符串
        String str = "";
        int length = ch.length;
        for (int i = 0; i < length; i++) {
            int c = (int)ch[i]-48;
            if(c != 0) {
                str += num[c]+unit[length-i-1];
            } else {
                str += num[c];
            }
        }
        return str;
    }

}
